package com.example.mapper;

import com.example.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@Mapper  // 添加这个注解
public interface UserMapper {

    /**
     * 任务一：查询特定用户及其拥有的所有角色
     */
    User selectUserWithRolesByUsername(@Param("username") String username);

    /**
     * 任务三：根据条件搜索用户，并连带其角色和权限信息
     */
    List<User> selectUsersWithRolesAndMenusByCondition(
            @Param("username") String username,
            @Param("email") String email,
            @Param("status") Integer status);

    /**
     * 任务三：分页查询用户
     */
    List<User> selectUsersWithRolesAndMenusByConditionPage(
            @Param("username") String username,
            @Param("email") String email,
            @Param("status") Integer status,
            @Param("offset") int offset,
            @Param("limit") int limit);

    /**
     * 统计用户数量
     */
    int countUsersByCondition(
            @Param("username") String username,
            @Param("email") String email,
            @Param("status") Integer status);
}